package com.ruoyi.info.service;

import java.util.List;
import com.ruoyi.info.domain.SysInfoArticle;

/**
 * 资讯文章Service接口
 * 
 * @author ruoyi
 * @date 2025-01-27
 */
public interface ISysInfoArticleService 
{
    /**
     * 查询资讯文章
     * 
     * @param articleId 资讯文章主键
     * @return 资讯文章
     */
    public SysInfoArticle selectSysInfoArticleByArticleId(Long articleId);

    /**
     * 查询资讯文章列表
     * 
     * @param sysInfoArticle 资讯文章
     * @return 资讯文章集合
     */
    public List<SysInfoArticle> selectSysInfoArticleList(SysInfoArticle sysInfoArticle);

    /**
     * 新增资讯文章
     * 
     * @param sysInfoArticle 资讯文章
     * @return 结果
     */
    public int insertSysInfoArticle(SysInfoArticle sysInfoArticle);

    /**
     * 修改资讯文章
     * 
     * @param sysInfoArticle 资讯文章
     * @return 结果
     */
    public int updateSysInfoArticle(SysInfoArticle sysInfoArticle);

    /**
     * 批量删除资讯文章
     * 
     * @param articleIds 需要删除的资讯文章主键集合
     * @return 结果
     */
    public int deleteSysInfoArticleByArticleIds(Long[] articleIds);

    /**
     * 删除资讯文章信息
     * 
     * @param articleId 资讯文章主键
     * @return 结果
     */
    public int deleteSysInfoArticleByArticleId(Long articleId);

    /**
     * 更新文章浏览次数
     * 
     * @param articleId 文章ID
     * @return 结果
     */
    public int updateViewCount(Long articleId);

    /**
     * 查询推荐文章列表
     * 
     * @param limit 限制数量
     * @return 文章列表
     */
    public List<SysInfoArticle> selectRecommendArticleList(int limit);

    /**
     * 查询置顶文章列表
     * 
     * @return 文章列表
     */
    public List<SysInfoArticle> selectTopArticleList();

    /**
     * 发布文章
     * 
     * @param articleId 文章ID
     * @return 结果
     */
    public int publishArticle(Long articleId);

    /**
     * 下架文章
     * 
     * @param articleId 文章ID
     * @return 结果
     */
    public int unpublishArticle(Long articleId);
}
